// import tec.Transport;
// import tec.Usager;
// import tec.FabriqueBus;
// import tec.PassagerAbstrait;
// import tec.Passager;
// import tec.FabriqueComportement;
// import tec.Repos;
import tec.*;

class Simple {

  /*
   * Sur un parametre de type Object, la methode println()
   * déclenche la methode toString().
   * La methodes toString() doit etre redefinie dans les
   * deux classes PassagerStandard et Autobus.
   */
  static private void deboguerEtat (Object t, Object p) {
    System.out.println(p);
    System.out.println(t);
  }

    static public void main (String[] args) throws TecInvalidException{
    Transport serenity = FabriqueBus.faireBus(1, 2);

    Usager kaylee = new tec.Repos("Kaylee", 5, tec.FabriqueComportement.faireCalme());
   
    serenity.allerArretSuivant();
    
    
    
    // debogue
    System.out.println(serenity);
    
    kaylee.monterDans(serenity);

    Usager jayne = new tec.Repos("Jayne", 4, tec.FabriqueComportement.faireCalme());
    jayne.monterDans(serenity);

    serenity.allerArretSuivant();
    // debogue
    System.out.println(serenity);
    System.out.println(kaylee);
    System.out.println(jayne);

    Usager inara = new tec.Repos("Inara", 5, tec.FabriqueComportement.faireCalme());
    inara.monterDans(serenity);

    serenity.allerArretSuivant();
    // debogue
    System.out.println(serenity);
    System.out.println(kaylee);
    System.out.println(jayne);
    System.out.println(inara);

    serenity.allerArretSuivant();
    // debogue
    System.out.println(serenity);
    System.out.println(kaylee);
    System.out.println(jayne);
    System.out.println(inara);

    serenity.allerArretSuivant();
    // debogue
    System.out.println(serenity);
    System.out.println(kaylee);
    System.out.println(jayne);
    System.out.println(inara);
  }
}

/* Resultat de l'execution.
[arret:1, assis:0, debout:0]
[arret:2, assis:1, debout:1]
Kaylee assis
Jayne debout
[arret:3, assis:1, debout:2]
Kaylee assis
Jayne debout
Inara debout
[arret:4, assis:1, debout:1]
Kaylee assis
Jayne dehors
Inara debout
[arret:5, assis:0, debout:0]
Kaylee dehors
Jayne dehors
Inara dehors
*/
